1
執行之路:理解編譯器驅動程式
AI031Lesson 7
00:00

指揮者:編譯器驅動程式

編譯器驅動程式 (如 GCC)視為一位宏偉的指揮家。它自動化從人類可讀的原始碼轉換為二進位可執行檔的複雜過程。這段旅程,即 執行之路,始於 編譯時間 並延伸至 載入時間執行時間

透過使用 獨立編譯,驅動程式會分別處理 main.csum.c 。一個模組的變更不需要重新翻譯整個專案——僅需將修改過的檔案經過前置處理器(cpp)、編譯器(cc1)及組譯器(as),再交由 連結器ld)整合產生的 可重定位目標檔案

main.ccpp/cc1/asmain.osum.ccpp/cc1/assum.oldprog硬體觀點:在 0x064C 的快取對映 位址: 0 0110 0100 11xx | 32 位元組快取行 標籤:0 0110 01集合:00偏移量:11xx步距為 1 的參考模式分析確保 L1 快取吞吐量。

效率與記憶體階層

連結器對於 grid[0][0]src[0][0] 直接影響 吞吐量延遲。透過將資料對齊至 32 位元組快取行,驅動程式促成了 步距為 1 的參考模式,最小化 冷缺失 並避免 欄位掃描所導致的快取剔除。在高階高效能程式碼中, 迴圈展開平行性($4 \times 4$ 展開迴圈) 進一步隱藏 主記憶體到快取的對映 延遲,透過優化時脈頻率週期(0x32、0x1、0x4、0x51)來達成。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>